Gestures involving direct interaction with a data visualization

ABSTRACT

Functionality is described herein for directly interacting with parts of a data visualization. For instance, the functionality allows a user to directly interact with data items to filter them out from the data visualization, and later restore them to the data visualization. The functionality also allows a user to directly interact with an axis to sort the data items in the data visualization. The functionality also allows a user to directly interact with a label of the data visualization to choose a new label, and to reorganize the information represented by the data visualization in response thereto. Further, before finalizing any update to the data visualization, the functionality may provide a preview of the updated data visualization.

This application claims the benefit of U.S. Provisional Application No.61/786,412 (the '412 Application), filed Mar. 15, 2013. The '412Application is incorporated by reference herein in its entirety.

BACKGROUND

A data manipulation tool can provide one or more auxiliary controlmechanisms that allow a user to manipulate a data visualization, such asa chart, table, graph, etc. For example, the tool may provide variouscontrol panels, menus, icons, toolbars, pointers, etc. The tooltypically provides these mechanisms within the peripheral regions of agraphical user interface presentation. In practice, a user may interactwith the data visualization by making changes to the auxiliary controlmechanisms and then observing the resultant changes to the datavisualization.

Auxiliary control mechanisms have proven effective in desktopenvironments. As a result, many users have become competent in usingthese types of control mechanisms. These control mechanisms, however,are not well suited for some devices. For example, small-sized devices(such as tablet devices, smartphones, etc.) have limited screen “realestate” on which to display the auxiliary control mechanisms.

SUMMARY

Functionality is described herein for allowing a user to directlyinteract with the parts of a data visualization using various gestures,rather than, or in addition to, interacting with auxiliary controlmechanisms. Such parts include individual data items, groups of dataitems, axes, labels, and so on. In one implementation, the user maydirectly interact with the parts of the data visualization via atouch-sensitive surface of a computing device.

For instance, the functionality allows a user to interact directly withdata items to filter them out from the data visualization. Once filteredout, the functionality may represent the removed data items asplaceholder items. The functionality also allows a user to restorefiltered out data items to the data visualization. The functionalityalso allows a user to interact directly with an axis of the datavisualization to sort the data items in the data visualization. Thefunctionality also allows a user to interact directly with a label ofthe data visualization to choose a new label; the functionality respondsto such a gesture by pivoting to an updated data visualization based onthe new label.

According to another illustrative aspect, the gesture may include twophases. In a first phase, a user may select a part of the datavisualization. In a second phase, the user may specify an action, fromamong a plurality of possible actions, to be performed on the selectedpart. The first phase and the second phase make up a unified gesture.For example, in a filter-out gesture, the user can select a part bytouching one or more data items. The user can specify an action byflicking up or down on the selected data item(s). Flicking up promptsthe functionality to perform a first filtering action, while flickingdown prompts the functionality to perform a second filtering action.

According to another illustrative aspect, the functionality provides apreview of an updated data visualization before a user completes agesture. The functionality finalizes the updated data visualization whenthe user completes the gesture, e.g., when the user removes his or herfinger from a display surface of a computing device which provides thedata visualization.

The functionality provides various potential benefits. For example, thefunctionality makes efficient use of screen real estate because iteliminates, or reduces reliance on, auxiliary control mechanisms. Thisaspect, in turn, makes the functionality particularly appropriate foruse in small-sized computing devices having limited screen “realestate,” although the functionality can be used in computing devices ofany size. In addition, the functionality provides an easy-to-understandapproach to interacting with a data visualization. These potentialadvantages are cited by way of illustration, not limitation.

The above approach can be manifested in various types of systems,components, methods, computer readable storage media, data structures,graphical user interface presentations, articles of manufacture, and soon.

This Summary is provided to introduce a selection of concepts in asimplified form; these concepts are further described below in theDetailed Description. This Summary is not intended to identify keyfeatures or essential features of the claimed subject matter, nor is itintended to be used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an illustrative computing device that includesfunctionality for allowing a user to directly interact with parts of adata visualization.

FIG. 2 shows one implementation of a gesture processing module, which isa component of the computing device of FIG. 1.

FIGS. 3 and 4 show an illustrative filter-out gesture, and the computingdevice's response to that gesture.

FIGS. 5 and 6 show an illustrative label-interaction gesture, and thecomputing device's response to that gesture.

FIGS. 7 and 8 show an illustrative sorting gesture, and the computingdevice's response to that gesture.

FIGS. 9-12 show additional types of filter-out gestures, and thecomputing device's response to those gestures.

FIGS. 13-15 show illustrative data expansion gestures, and the computingdevice's response to those gestures.

FIG. 16 shows a gesture that involves moving the computing device.

FIG. 17 is a flowchart that provides an overview of one manner ofoperation of the computing device of FIG. 1.

FIG. 18 is a flowchart that describes one illustrative manner by whichthe computing device (of FIG. 1) can handle different types of gestures.

FIG. 19 is a flowchart which summarizes the processing of many types ofdirection-interaction gestures.

FIG. 20 is a flowchart that explains one manner by which the computingdevice can provide a preview of an updated data visualization, prior tofinalizing (e.g., committing to) the updated data visualization.

FIG. 21 shows illustrative computing functionality that can be used toimplement any aspect of the features shown in the foregoing drawings.

The same numbers are used throughout the disclosure and figures toreference like components and features. Series 100 numbers refer tofeatures originally found in FIG. 1, series 200 numbers refer tofeatures originally found in FIG. 2, series 300 numbers refer tofeatures originally found in FIG. 3, and so on.

DETAILED DESCRIPTION

This disclosure is organized as follows. Section A describesillustrative functionality for allowing a user to directly interact withparts of a data visualization. Section B sets forth illustrative methodswhich explain the operation of the functionality of Section A. Section Cdescribes illustrative computing functionality that can be used toimplement any aspect of the features described in Sections A and B.

As a preliminary matter, some of the figures describe concepts in thecontext of one or more structural components, variously referred to asfunctionality, modules, features, elements, etc. The various componentsshown in the figures can be implemented in any manner by any physicaland tangible mechanisms, for instance, by software running on computerequipment, hardware (e.g., chip-implemented logic functionality), etc.,and/or any combination thereof. In one case, the illustrated separationof various components in the figures into distinct units may reflect theuse of corresponding distinct physical and tangible components in anactual implementation. Alternatively, or in addition, any singlecomponent illustrated in the figures may be implemented by plural actualphysical components. Alternatively, or in addition, the depiction of anytwo or more separate components in the figures may reflect differentfunctions performed by a single actual physical component. FIG. 21, tobe described in turn, provides additional details regarding oneillustrative physical implementation of the functions shown in thefigures.

Other figures describe the concepts in flowchart form. In this form,certain operations are described as constituting distinct blocksperformed in a certain order. Such implementations are illustrative andnon-limiting. Certain blocks described herein can be grouped togetherand performed in a single operation, certain blocks can be broken apartinto plural component blocks, and certain blocks can be performed in anorder that differs from that which is illustrated herein (including aparallel manner of performing the blocks). The blocks shown in theflowcharts can be implemented in any manner by any physical and tangiblemechanisms, for instance, by software running on computer equipment,hardware (e.g., chip-implemented logic functionality), etc., and/or anycombination thereof.

As to terminology, the phrase “configured to” encompasses any way thatany kind of physical and tangible functionality can be constructed toperform an identified operation. The functionality can be configured toperform an operation using, for instance, software running on computerequipment, hardware (e.g., chip-implemented logic functionality), etc.,and/or any combination thereof.

The term “logic” encompasses any physical and tangible functionality forperforming a task. For instance, each operation illustrated in theflowcharts corresponds to a logic component for performing thatoperation. An operation can be performed using, for instance, softwarerunning on computer equipment, hardware (e.g., chip-implemented logicfunctionality), etc., and/or any combination thereof. When implementedby computing equipment a logic component represents an electricalcomponent that is a physical part of the computing system, howeverimplemented.

The phrase “means for” in the claims, if used, is intended to invoke theprovisions of 35 U.S.C. §112, sixth paragraph. No other language, otherthan this specific phrase, is intended to invoke the provisions of thatportion of the statute.

The following explanation may identify one or more features as“optional.” This type of statement is not to be interpreted as anexhaustive indication of features that may be considered optional; thatis, other features can be considered as optional, although not expresslyidentified in the text. Finally, the terms “exemplary” or “illustrative”refer to one implementation among potentially many implementations.

A. Illustrative Computing Device

FIG. 1 shows an illustrative computing device 102 that allows a user todirectly interact with a data visualization using a set ofdirect-interaction gestures. As the term is used herein, a datavisualization refers to any visual representation of data. The datavisualization uses an abstraction to organize and represent the data.Without limitation, illustrative data visualizations include charts(e.g., bar charts, scatter plots, pie charts, etc.), graphs, tables,hyper-cubes (e.g., OLAP cubes), maps, trees, etc.

The data can be expressed as a plurality of data items. A data item, inturn, includes any unit of data. In one case, a data item may correspondto a single measurement or data point. For example, a data item maycorrespond to a representation of a single event which occurs at aparticular time. In another case, a data item may correspond to agrouping or aggregation of other data items. For example, a data itemmay correspond to an indication of a number of events which occur withina particular time span.

Different data visualizations may be characterized by differentgraphical features. The computing device 102 may allow a user tointeract any graphical features of the data visualization. For example,without limitation, the user may interact with any individual data item,a group of data items, an axis, a label, and so on. By virtue of thismode of interaction, the computing device 102 imparts metaphoricalphysicality to the parts of the data visualization. And as such, in manycases, the users may directly operate on the parts of the datavisualization as if these parts constituted physical entities.

The computing device 102 allows a user to interact with a datavisualization using any kind of gesture or combination of gestures. In adevice-type gesture, the user can use a mouse device, trackball device,keypad device, etc. to interact with the computing device 102. In acontact gesture, the user can use any type of selection implement (e.g.,a finger, stylus, etc.) to interact with one or more touch-sensitivesurfaces of the computing device 102 in a prescribed manner, such as byperforming dragging, sliding, swiping, flicking, tapping,pressing-and-holding, pinching, panning, etc. actions. In a devicemovement gesture, the user may move the computing device 102 itself tomatch a prescribed motion profile, such as by performing tilting,shaking, rotating, etc. movements. Alternatively, or in addition, theuser may perform a device movement gesture by moving the computingdevice 102 to a prescribed static orientation. In a free spaceexpressive gesture, the user may perform any free space motion, and/orestablish any free-space posture, without necessarily contacting thecomputing device 102; the computing device 102 may detect a free spacegesture using one or more types of cameras. These types of gestures arecited by way of example, not limitation. Alternatively, or in addition,a user may interact with the data visualization using other inputmechanisms, such as by speaking various commands which directly targetparts of the data visualization. A voice recognition input mechanism candetect those commands.

More generally stated, the gestures are preferably selected to furtherpromote the metaphor of direction interaction with physical entities.For example, as will be described in greater detail below, a user mayperform a filter-out gesture by directly touching a data item andsweeping it out of the original data visualization. This type ofinteraction is easy for the user to comprehend, in part, because it isrelated to the manner in which a user may choose to remove a physicalobject from a collection of physical objects. In other words, the useris not expected to learn an association between an arbitrary symbol andthe filtering-out behavior in order to perform the filtering-outbehavior.

According to another illustrative aspect, the gesture may include twophases. In a first phase, a user may select a part of the datavisualization. In a second phase, the user may specify an action, fromamong a plurality of possible actions, to be performed on the selectedpart. The first phase and the second phase make up a unified gesture

In practice, the user may interact with the computing device 102 byfirst ensuring that the data visualization currently includes thegraphical feature(s) with which he or she wishes to interact. That is,the corollary of direction interaction paradigm implies that, in oneimplementation, a user cannot interact with a graphical feature if it isnot displayed. Once a desired graphical feature is displayed, the usermay use one or more of the above-described gestures to interact with it.

For some data manipulations, the above-described direct manner ofinteraction involves fewer actions compared to the use of an auxiliarycontrol mechanism to perform the same task. But in other cases, thedirect manner operation may involve the same number of actions, or agreat number of actions, compared to the use of an auxiliary controlmechanism. Nevertheless, the user may prefer the direct manner ofinteraction (compared to the use of auxiliary control mechanisms)because he or she perceives it as offering a more satisfactory userexperience, e.g., because it is easy to understand and user-friendly.Further, the computing device 102 can make more efficient use of screen“real estate” because it can eliminate the use of auxiliary controlmechanisms, which typically occupy the peripheral regions of a graphicaluser interface presentation. In other implementations, however, thecomputing device 102 may offer a combination of direct manipulationfunctionality and auxiliary control mechanisms.

With the above introduction, this section first sets forth illustrativedetails regarding one illustrative implementation of the computingdevice 102. This section then provides examples of gestures with which auser may interact with the computing device 102.

The computing device 102 may correspond to any type of processingfunctionality. For example, the computing device 102 may be implementedas a portable device that the user can hold with one or more hands. Forinstance, without limitation, the computing device 102 can correspond toa smartphone, a media consumption device (e.g., an electronic bookreader device, a music-playing device, etc.), a portable digitalassistant device, a tablet-type or slate-type computing device, aportable game-playing device, a laptop computing device, a netbook-typecomputing device, and so on. In other cases, the illustrative computingdevice 102 corresponds to a (typically) stationary device, such as apersonal computer, a computer workstation, a game console device, aset-top box device, and so on.

The computing device 102 includes a display mechanism 104 that providesa visual rendering of information on one or more display surfaces. Thedisplay mechanism 104 can be implemented by any type of displaytechnology, such as a liquid crystal display (LCD), a stereoscopicdisplay of any type, a projector which displays information on anysurface (e.g., a wall, a tabletop, etc.), and so on. Although not shown,the computing device 102 can also include other types of outputmechanisms, such as an audio output mechanism, a haptic (e.g.,vibratory) output mechanism, a printer mechanism, etc.

The computing device 102 also includes various input mechanisms 106 bywhich a user may interact with the computing device 102, e.g., toprovide the above-described direct-interaction gestures. According tothe terminology used herein, each input mechanism provides inputinformation. An instance of input information can describe any inputevent(s) having any duration(s) and any composition.

The input mechanisms 106 can include one or more contact inputmechanisms 108 which produce contact input information when the userinteracts with at least one surface associated with the computing device102. For example, in one case, a contact input mechanism may beimplemented as a touch-sensitive display surface of the computing device102. In addition, or alternatively, a contact input mechanism may beimplemented as a non-display surface, e.g., as provided on the back ofthe computing device 102, the side(s) of the computing device 102, andso on. In some implementations, a contact input mechanism can alsodetermine when the user comes in close contact with the touch-sensitivesurface(s), but does not make physical contact with the touch-sensitivesurface(s). Accordingly, as used herein, the term “touch” and “contact”encompass the cases in which the user makes physical contact with asurface, as well as cases in which the user draws in close proximaldistance to a surface without actually making physical contact with it.

The contact input mechanisms 108 can be implemented using anytechnology, such as resistive touch screen technology, capacitive touchscreen technology, acoustic touch screen technology, bi-directionaltouch screen technology, and so on, or any combination thereof. Inbi-directional touch screen technology, a display mechanism provideselements devoted to displaying information and elements devoted toreceiving information. Bi-directional screen technology is one mechanismby which the contact input mechanisms 108 can detect when the user movesclose to a touch-sensitive surface, without actually touching it.

To facilitate explanation, this description will present a number ofexamples in which the user uses his or her fingers to interact with thecontact input mechanisms 108. But, more generally, the user can interactwith the contact input mechanisms 108 using any selection implement,including any body part(s), a stylus, a pen, etc. Further, at any giventime, the user can interact with the contact input mechanisms 108 usinga single-touch (e.g., using a single finger) or multiple touches (e.g.,using multiple fingers).

The input mechanisms 106 also include one or more device movement inputmechanisms 110 for supplying movement input information that describesthe movement of the computing device 102. That is, the device movementinput mechanisms 110 correspond to any input mechanisms that measure theorientation and/or motion of the computing device 102. For instance, thedevice movement input mechanisms 110 can be implemented usingaccelerometers, gyroscopes, magnetometers, vibratory sensors, torquesensors, strain gauges, flex sensors, optical encoder mechanisms, and soon, or any combination thereof.

FIG. 1 also indicates that the input mechanisms 106 can include anyother input mechanisms 112. For example, the other input mechanisms 112can include one or more video cameras for producing video inputinformation. In addition, or alternatively, the other input mechanisms112 can include one or more depth sensing mechanisms for producing andprocessing depth input information. A depth sensing mechanism can useany depth-sensing technology to determine the position of the user(and/or any implement controlled by the user) within three dimensionalspace, such as structured light depth-sensing technology, time-of-flightdepth-sensing technology, stereoscopic depth-sensing technology, and soon. Through this mechanism, the computing device 102 can determinegestures that the user makes within free space, e.g., by making thegestures in front of a wall-projected data visualization withoutphysically touching that data visualization. One commercially-availablesystem for producing and processing depth images is the Kinect™ system,provided by Microsoft® Corporation of Redmond, Wash. The other inputmechanisms 112 can also include any collection of traditional inputdevices, such as a mouse device, a track ball device, a joystick device,a keyboard device, a voice recognition mechanism, etc. or anycombination thereof.

Note that FIG. 1 depicts the display mechanism 104 as partiallyoverlapping the input mechanisms 106. This relationship means that, insome implementations, the display mechanism 104 may be physicallyintegrated with at least some of the input mechanisms 106. For example,a touch-sensitive display surface encompasses both an input mechanismand an output mechanism. In other cases, the display mechanism 104 isseparate and independent from at least some of the input mechanisms 106.

Further note that, in some cases, the input mechanisms 106 may representcomponents that are enclosed in or disposed on a housing associated withthe computing device 102. In other cases, at least some of the inputmechanisms 106 may represent functionality that is not physicallyintegrated with the housing associated with the computing device 102,but nonetheless may be considered as part of the computing device 102(as the term is used herein). For example, at least some of the inputmechanisms 106 can represent components that are coupled to a main bodyof the computing device 102 via a communication mechanism of any type,e.g., a cable, wireless interface, etc. For instance, one type ofcontact input mechanism may correspond to a graphics tablet that isseparate from (or at least partially separate from) the displaymechanism 104.

Likewise, the display mechanism 104 may represent a component which isphysically integrated with the housing associated with the computingdevice 102. Alternatively, the display mechanism 104 may representfunctionality that is not physically integrated with the housing, butnonetheless may be considered as part of the computing device 102.

A gesture processing module 114 performs the task of interpreting theinput information provided by the input mechanisms 106. In particular,the gesture processing module 114 determines whether the user has made arecognizable gesture that involves directly interacting with a datavisualization (to be described below), referred to herein as adirect-interaction gesture. If this kind of gesture is detected, thegesture processing module 114 executes behavior associated with thatgesture. FIG. 2 (described below) provides additional details regardingone implementation of the gesture processing module 114.

The computing device 102, as this term is used herein, may alsoencompass remote processing functionality 116. The remote processingfunctionality 116 may be implemented using one or more remote severs andassociated data stores, e.g., as provided by cloud computing resourcesor the like.

The computing device 102 may also run one or more applications 118. Anapplication can perform any functions associated with any applicationdomain. In some cases, the computing device 102 executes theapplications 118 using local resources, such as local storage resourcesand local processing resources. In other cases, the computing device 102executes an application by also relying, at least in part, on resourcesprovided by the remote processing functionality 116.

As a final point of clarification with respect to FIG. 1, this figuredepicts the gesture processing module 114 as a self-contained modulethat is separate from the remote processing functionality 116 and theapplications 118. Indeed, in some cases, the gesture processing module114 may represent a separate and self-contained module that bothrecognizes a gesture and performs whatever behavior is associated withthe gesture. In another case, one or more functions attributed to thegesture processing module 114 can be performed by the remote processingfunctionality 116 and/or the any of the applications 118. For example,in one implementation, the gesture processing module 114 can interpret agesture that has been performed, while one of the applications 118 canselect and execute behavior associated with the detected gesture.Accordingly, the gesture processing module 114 is to be interpretedliberally herein as encompassing functionality that may be distributedamong different components of the computing device 102 in any manner.

FIG. 2 shows one implementation of the gesture processing module 114.The gesture processing module 114 can include a gesture matching module202 for receiving input information. The input information can includecontact input information from the contact input mechanisms 108(corresponding to touch input, pen input, etc.), device movement inputinformation from the device movement input mechanisms 110, and any otherinput information from any other input mechanisms 112, etc. The inputinformation can also include context information which identifies acontext in which a user is currently using the computing device 102. Forexample, the context information can identify the application that theuser is running at the present time, and optionally the current statewithin that application. Alternatively, or in addition, the contextinformation can describe the physical environment in which the user isusing the computing device 102, and so on.

In one manner of operation, the gesture matching module 202 compares theinput information with a collection of signatures that describedifferent telltale ways that a user may directly interact with the datavisualization. A data store 204 may store those signatures, e.g., as alookup table, as the parameters of a model, or in some other manner. Forexample, a signature may indicate that a direct-interaction gesture X ischaracterized by a pattern of touch-related input events A, B, and C.The gesture matching module 202 determines that a particular instance ofinput information matches the gesture X by determining whether the inputinformation includes input events A, B, and C.

A behavior executing module 206 executes whatever behavior is associatedwith a matching gesture. The data store 204 may store informationregarding the actions that are associated with each detectable gesture,e.g., as a lookup table or using some other mechanism. The behaviorexecuting module 206 can execute a gesture by consulting the data store204 to determine what actions are associated with a particular gesturethat has been detected. The behavior executing module 206 can thenperform those actions.

FIGS. 3-15 depict scenarios in which a user uses various gestures tointeract with a data visualization. In these particular scenarios, thedata visualization corresponds to a bar chart. The parts of this datavisualization, with which the user may interact, include data items,groups of data items, axes, labels, icons, and so on. For example, eachbar in the bar chart may correspond to a data item. Note, however, thatthese scenarios are presented by way of illustration, not limitation. Inother scenarios, the user may use the computing device 102 to interactwith other types of data visualizations (such as graphs, tables, maps,trees, etc.). Each of those data visualizations may be characterized bya set of graphical features with which the user may directly interact,and those graphical features may differ from the features shown in FIGS.3-15.

Starting with FIG. 3, assume that the user instructs the computingdevice 102 to display an original data visualization, corresponding to abar chart that describes sales volume for four years: 2009, 2010, 2011,and 2012. Each of the bars corresponds to a data item. The user beginsby using a filter-out gesture to filter out one of the data items, suchas the data item 302 that corresponds to the sales volume for the year2009. In one implementation, the user may perform the filter-out gestureby touching the data item 302 with his or her finger 304 (or any otherselection implement) and moving his or her finger 304 in a prescribedmanner. For example, the user may move his or her finger 304 in downwarddirection 306, e.g., flicking his or her finger 304 in the downwarddirection 306. In one non-limiting implementation, the computing device102 may interpret the downward movement as an instruction to remove theselected data item 302 from the original data visualization. Thecomputing device 102 may interpret an upward movement (not shown) as aninstruction that all of the other data items in the original datavisualization are to be removed, except for the selected data item 302.

FIG. 4 shows the updated data visualization produced by the filter-outgesture performed in FIG. 3. As indicated there, the filtered-out datavisualization now includes just three data items, corresponding to salesvolume for the years 2010, 2011, and 2012. Further, the computing device102 generates and displays a placeholder item 402 beneath the data items(or in any other spatial relationship with respect to the data items).The placeholder item 402 represents the data item for the year 2009,which has been removed via the gesture performed in FIG. 3.

The user can perform a filter-in gesture by touching the placeholderitem 402 with his or her finger 404 (or other selection implement) andmoving his or her finger 404 in a prescribed manner. For example, theuser can touch the placeholder item 402 with his or her finger 404 andflick his or her finger 404 in the direction 406 of the other dataitems. The computing device 102 interprets this action as a request torestore the removed data item 302 to the bar chart. If the user flickshis or her finger 404 in the downward direction (not shown) on aplaceholder item, the computing device 102 can do nothing, or canperform some other action on the selected placeholder item (such as byadding the corresponding removed data item to another datavisualization, not shown).

Now assume that the user wishes to remove two other data items (408,410) corresponding, respectively, to the sales volume for the years 2011and 2012. The user can perform this operation in the same mannerdescribed above, e.g., by touching the data item 408 with his or herfinger 412 and then moving his or her finger 412 in a downward direction414, and then doing the same for the data item 410. This filter-outgesture yields the filtered-out data visualization shown in FIG. 5. Asindicated there, the filtered-out data visualization now includes asingle data item, corresponding to the year 2010. The user could haveproduced the same result by flicking in an upward direction on the year2010 within the data visualization shown in FIG. 3. The updated datavisualization now also shows three placeholder items 502, correspondingto the years 2009, 2011, and 2012. Once again, the user can restore anyof the removed data items using the above-described type of filter-ingesture.

In the above scenario, the user has selected and removed three dataitems in successive fashion, one after the other. The user may alsorestore two or more data items in successive fashion, one after theother. In addition, the user may perform a gesture that has the effectof removing two or more data items at the same time. The user may alsoperform a gesture that involves restoring two or more data items at thesame time. Later figures (to be described below) illustrate these kindsof gestures.

Referring to FIG. 5, the data visualization currently assigns asales-related dimension to the vertical axis (associated with a “Sales”label 504) and a year-related dimension to the horizontal axis(associated with a “Year” label 506). Assume that the user wishes toproduce an updated data visualization that shows sales volume by month,not year. This kind of transformation may be regarded as a pivot betweentwo different ways of depicting an underlying data set. To perform thistransformation, the user can perform a label-interaction gesture, e.g.,by first touching the “Year” label 506 with his or her finger 508 (orother selection implement), or by touching a location near the “Year”label 506. The computing device 102 responds by displaying a labelselection panel 510 in proximity to the “Year” label 506. The labelselection panel 510 identifies various labels that can be assigned tothe horizontal axis, instead of the “Year” label 506.

As indicated in FIG. 6, assume that the user next uses his or her finger602 to touch one of the entries in the label selection panel 510, e.g.,corresponding to the “Month” label. The computing device 102 responds byreorganizing the underlying information represented by the datavisualization based on the newly selected label. For instance, as shownin FIG. 6, the data visualization now shows data items (e.g., bars)along the horizontal axis corresponding to respective months in the year2010.

The user can perform a similar label-interaction gesture to change the“Sales” label 504 associated with the vertical axis. For example, theuser can touch the “Sales” label 504 (or touch a location near the“Sales” label 504), which prompts the computing device 102 to display alabel-selection panel (not shown). The user may then select a new label,such as “Profit,” etc. In response, the computing device 102 againreorganizes the information represented by the data visualization basedon the newly selected label.

The data visualization may include any number of other labels with whichthe user may directly interact. For example, the user can touch a “Type”label 512 (or touch near the “Type” label 512) to change the type of thechart associated with the data visualization, e.g., from a bar chart toa pie chart, etc. The user can also activate a data expansion icon 514to vary the granularity in which data items are presented. FIGS. 13-14,to be described below, provide further information regarding techniquesfor expanding the granularity of data items.

Now advancing to FIG. 7, assume that the user wishes to sort the bars inFIG. 6 in a particular order, such as by ordering the bars in the year2010 from the month with the lowest sales volume (i.e., August) to themonth with the highest sales volume (i.e., December). To perform thistask, the user may perform a sorting gesture, e.g., by using his or herfinger 702 to touch the vertical axis 704 at an initial location 706,and then moving his or her finger 702 in a generally upward direction708 along the vertical axis 704. The user may alternatively move his orher finger 702 in the general opposite direction (not shown) to sortmonths in the order of largest sales volume to smallest sales volume.

More generally stated, the user can perform the sorting gesture by usinga selection implement to select a representation of one dimension of thedata visualization, such as an axis of the data visualization. The usercan then move the selection implement in a first direction to sort thedata items in a first manner, or move the selection implement in asecond direction to sort the data items in a second manner. The firstdirection (e.g., from up to down) is approximately opposite to thesecond direction (e.g., from down to up), and the first manner (fromsmallest to largest) is opposite to the second manner (e.g., fromlargest to smallest).

Although not shown, the user can perform a similar sorting operationwith respect to the horizontal axis of the data visualization. Forexample, the user can use his or her finger (or other selectionimplement) to touch the horizontal axis and then slide his or her fingerto the right or to the left. Movement to the right will sort the dataitems in a first manner (e.g., alphabetically, from A to Z), whilemovement to the left will sort the data items in a second manner (e.g.,from Z to A). Again, the first direction (e.g., from left to right) isapproximately opposite to the second direction (e.g., right to left),and the first manner (e.g., from A to Z) is opposite to the secondmanner (e.g., from Z to A).

FIGS. 7 and 8 also illustrate a preview feature provided by thecomputing device 102. For example, in FIG. 7, the computing device 102displays a preview 710 of the updated data visualization once it detectsthat a user is in the process of performing the sorting gesture, but hasnot yet completed the sorting gesture. For example, assume that the usermoves his or her finger 702 in the upward direction 708, starting atlocation 706; thereafter, assume that the user maintains his or herfinger 702 in contact with the vertical axis 704. Once the computingdevice 102 determines that the user is performing a sorting gesture, thecomputing device 102 will display the preview 710. For example, thecomputing device 102 can begin to display the preview 710 after the usertouches the vertical axis 704 and begins to move a short distance in theupward direction along that axis 704.

FIG. 7 depicts the preview 710 as a series of bars in the updated datavisualization, shown in dashed lines, from smallest to largest. Inactual practice, the computing device 102 can display the updated datavisualization in manner, such as by superimposing a faded-out orsemi-transparent version of the updated data visualization over the topof the original data visualization (shown in FIG. 6).

The user can commit to the data visualization shown in the preview 710by completing the sorting gesture, which may entail removing his or herfinger 702 from the vertical axis 704. This operation yields thepersisted updated data visualization 802 shown in FIG. 8 (that is, inwhich the preview 710 is replaced by the finalized data visualization802). Alternatively, the user can slide his or her finger 702 back inthe downward direction along the vertical axis 704 to the initiallocation 706 (not shown). The computing device 102 responds to thisaction by restoring the data visualization to its original presentationshown in FIG. 6. Other direct-interaction gestures may exhibit the samekind of preview-related behavior described above; that is, the computingdevice 102 will display the preview once it determines that the user isperforming the direct-interaction gesture, and will replace the previewwith a persisted data visualization once the user completes the gesture.

FIGS. 9 and 10 show a filter-out gesture that the user can perform toremove plural data items from the data visualization. In oneimplementation, the user may use his or her finger 902 (or otherselection implement) to touch a sales amount next to the vertical axisof the data visualization. The computing device 102 responds bydisplaying a horizontal line 904. The user may then optionally drag thehorizontal line 904 up or down to designate different sales amounts. Thecomputing device 102 further displays all data items below the line 904in a first visual format and all data items above the line 904 in asecond visual format, e.g., by displaying the data items above the linein a faded-out or semi-transparent form.

Advancing to FIG. 10, the user performs a second phase of the filter-outgesture by using his or her fingertips 1002 to swipe the datavisualization in the direction 1004. The computing device 102 respondsto this filter-out gesture by removing all of the data items that havesales volumes above the line 904. This operation yields the updated datavisualization shown in FIG. 12. Further, the computing device 102 candisplay placeholder items 1202 corresponding to the months that werefiltered out of the data visualization. The computing device 102 canoptionally interpret a swipe in the opposite direction (compared to thedirection 1004 of the arrow of FIG. 10) as an instruction to filter outthe data items having sales volumes below the line 904.

FIG. 11 shows another filter-out gesture by which the user can removeplural data items. Here, the user uses his or her finger 1102 to tapsuccessively on the individual data items to be removed, that is, formonths November, October, September, and December. The user may thenperform the follow-up phase of the gesture by performing the swipingmovement shown in FIG. 10. Or the user may perform another tap in anyperipheral region of the user interface presentation, e.g., in any fieldthat is not associated with part of the data visualization. In response,the computing device 102 produces the updated data visualization shownin FIG. 12.

Although not shown, the user can restore plural data items to the datavisualization using the same technique shown in FIG. 11. For example,the user can tap on two or more placeholder items and then perform a tapin a peripheral region of the user interface presentation. The computingdevice 102 responds to this gesture by restoring all of the data itemsthat are associated with the selected placeholder items.

Assume that the user now wishes to change the granularity of theinformation expressed in the data visualization, e.g., by displaying,for each month, the breakdown of sales volume attributed to differentproducts. The user may perform this task by executing a data expansiongesture. In one implementation, the user can perform this gesture byfirst touching the icon 514 shown in FIG. 5. The computing device 102responds by displaying the label selection panel 1302 shown in FIG. 13.Assume that the user then uses his or her finger 1304 to touch the“Product” entry in the label selection panel 1302. The computing device102 responds to this selection by presenting the updated datavisualization shown in FIG. 15. As indicated there, the computing device102 now partitions each bar into sub-bars; each sub-bar indicates thesales volume associated with a particular type of product (assuming herethat there are only two products, corresponding to coffee and tea).Alternatively, the computing device 102 can convey the same informationby displaying, for each original bar, two side-by-side bars associatedwith the two products.

FIG. 14 shows an alternative way that a user may initiate the dataexpansion gesture. Here, the user touches at least one of the bars usingtwo fingers (1402, 1404). The user then moves his or her fingers (1402,1404) apart in the direction of the arrows. The computing device 102interprets this gesture as a request to expand the granularity of thebars, to produce the updated visualization shown in FIG. 15.

Taken all together, the user may perform the collection of gesturesshown in FIGS. 3-15 to answer one or more questions. For example, theuser may perform these gestures to determine the amount of coffee thatwas sold in the year 2010 in the eight most profitable months of thatyear. The user could have answered the same question by manipulating anauxiliary control mechanism, e.g., using drop-down menus or the like.Further, the user could have possibly answered this question with feweractions by using the auxiliary control mechanism, compared to the use ofdirect-interaction gestures. Nevertheless, the user may prefer to usethe direct interaction gestures because he or she may perceive it asoffering a more satisfactory user experience.

In conclusion, FIGS. 3-15 where framed in the context of concreterepresentative gestures associated with particular data manipulationtasks. Other implementations can vary any aspect of these gestures. Forexample, any gesture can be modified by changing the part of the datavisualization that a user is expected to touch to initiate the gesture.For example, in the above examples, the user was expected to directlytouch a selected data item, axis, label, etc. But the user canalternatively, or in addition, initiate the gestures in response totouching regions in proximity to the selected data item, axis, label,etc. (which is still considered direct interaction, as that term is usedherein). Alternatively, or in addition, the gestures can be modified bychanging the movements that are associated with the gestures, comparedto the illustrative movements described above. Alternatively, or inaddition, the gestures can be modified by changing the behaviors thatare associated with the gestures, compared to the illustrative behaviorsdescribed above. The gestures can be modified in yet other ways.

Further, the computing device 102 can invoke the preview feature in adifferent manner compared to the example described above in connectionwith FIGS. 7 and 8. In that example, the computing device 102 displaysthe preview so long as the user maintains his or her finger in contactwith the display surface of the computing device 102. In anotherimplementation, the computing device 102 can show a preview for aprescribed amount of time before persisting the updated datavisualization, regardless of whether the user's finger is still incontact with the display surface. Alternatively, or in addition, thecomputing device 102 can present an inquiry to the user when it displaysthe updated data visualization, e.g., asking the user, “Do you want tochange the data visualization in this way?”, or the like. Alternatively,or in addition, the computing device 102 can provide an “undo” controlfeature that allows the user to remove the updated data visualization.

Further, the above figures depicted gestures that involve making actualor close physical contact with a touch-sensitive surface of thecomputing device 102, e.g., using a finger or other selection implement.But the computing device 102 can also detect commands that involve othertypes of behavior, besides, or in addition to, touch-related behavior.For example, the computing device 102 can detect commands that involvemovement of the computing device 102, movement of the user in free space(without necessarily making contact with the computing device 102),movement of a mouse device, spoken information, and so on.

For example, FIG. 16 shows a gesture that involves grasping atablet-type computing device 1602 with one or more hands (1604, 1606)and tilting the computing device 1602 about an axis that runs throughthe hands (1604, 1606), e.g., by tilting the computing device 1602either towards the user, or away from the user. Or the user can tilt thecomputing device 1602 by lifting her right hand 1606 relative to theleft hand 1604, or vice versa. In one implementation, the computingdevice 1602 can interpret any one of these movements as a request tosort the data items shown in FIG. 6 to produce the sorted datavisualization shown in FIG. 8. Metaphorically, the data items can beviewed as having a mass which depends on their respective sales volumes.When the user tilts the computing device 1602, the computing device 1602can reorder the data items in order of their metaphorical weights, e.g.,from lightest to heaviest or from heaviest to lightest. Thismovement-related gesture is, again, merely presented by way of example,not limitation. Other gestures can involve shaking the computing device1602, flicking the computing device 1602, rotating the computing device1602 within a plane, striking parts of the data visualization withvarying degrees of force, and so on. Other gestures can involveparticular combinations in which the user touches the computing device1602 in a prescribed manner, while simultaneously (or successively)moving it in a prescribed manner.

B. Illustrative Processes

FIGS. 17-20 show procedures that explain one manner of operation of thecomputing device 102 of FIG. 1. Since the principles underlying theoperation of the computing device 102 have already been described inSection A, certain operations will be addressed in summary fashion inthis section.

Starting with FIG. 17, this figure shows a procedure 1702 thatrepresents an overview of one manner of operation of the computingdevice 102. In block 1704, the computing device 102 displays an originaldata visualization. In block 1706, the computing device 102 receivesinput information from one or more of the input mechanisms 106. Forexample, the input information may indicate that the user has touched atouch-sensitive display surface of the computing device 102, and/ormoved the computing device 102, etc. In block 1708, the computing device102 determines whether the input information indicates that that theuser has performed at least part of a direct-interaction gesture whichinvolves directly interacting with a part of the data visualization.Illustrative gestures described above include filter-out gestures,filter-in gestures, sorting gestures, label-interaction gestures (e.g.,corresponding to information-pivoting gestures), data expansiongestures, and so on. In block 1710, the computing device 102 performsthe behavior associated with the detected gesture. In block 1712, thecomputing device 102 provides an updated data visualization whichreflects the outcome of the behavior performed in block 1710.

FIG. 18 shows a procedure 1802 that provides further details regardingone way in which the computing device 102 may handle different types ofgestures. In block 1804, the computing device 102 determines whether auser has performed a filter-out gesture. The user can perform thisgesture by directly interacting with at least one selected data item.For example, the user can perform a filter-out gesture by selecting atleast one data item with a selection implement (e.g., a finger), andthen moving the selection implement in a prescribed manner. If this kindof gesture has been performed, then, in block 1806, the computing device102 removes at least one to-be-removed data item from the original datapresentation, to provide a filtered-out data visualization. Thecomputing device 102 can also generate a placeholder item associatedwith each data item that has been filtered out.

For example, assume that the user selects a data item and moves theselection implement in a first manner (e.g., by flicking his or herfinger in the downward direction). In this case, the to-be-removed dataitem corresponds to the selected data item. In another case, assume thatthe user selects a data item and moves the selection item in a secondmanner (e.g., by flicking his or her finger in the upward direction). Inthis case, the to-be-removed data items correspond to other data itemsin the original data visualization besides the selected data item.

In block 1808, the computing device 102 determines whether a user hasperformed a filter-in gesture. The user can perform this gesture, forexample, by selecting one or more placeholder data items with aselection implement (e.g., a finger), and then moving the selectionimplement in a prescribed manner. Each placeholder data item correspondsto a removed data item that has been previously removed. If this kind ofgesture has been performed, then, in block 1810, the computing device102 produces a filtered-in data presentation by adding the removed dataitem(s) to the original data presentation.

In block 1812, the computing device 102 determines whether a user hasperformed a sorting gesture. The user can perform this gesture, forexample, by selecting an axis with a selection implement (e.g., afinger) and then moving the selection implement in a prescribed manner.If this kind of gesture has been performed, then, in block 1814, thecomputing device 102 sorts the data items based on the sorting gesture,to provide a sorted data visualization.

For example, assume that the user uses the selection implement to touchan axis (or to touch a region in proximity to the axis), and then movesthe selection implement in either a first or second direction. If theuser moves the selection implement in a first direction, the computingdevice 102 may sort the data items in a first manner. If the user movesthe selection implement in a second direction, the computing device 102may sort the data items in a second manner. In one case, the firstdirection is approximately opposite to the second direction, and thefirst manner is opposite to the second manner. For example, the firstdirection may correspond to a generally upward direction along the axis,while the second direction may correspond to a generally downwarddirection along the axis. The first manner may involve ordering the dataitems in one order (e.g., from smallest to largest) and the secondmanner may involve ordering the data items in the opposite order (e.g.,from largest to smallest).

In block 1816, the computing device 102 determines whether a user hasperformed a label-interaction gesture. The user can perform thisgesture, for example, by selecting a label of the data visualization(e.g., by touching the label or touching a region in proximity to thelabel), which prompts the computing device 102 to display alabel-selection panel. The user may then select an entry within thatpanel. If this kind of gesture has been performed, then, in block 1518,the computing device 102 pivots the information expressed in theoriginal data visualization based on the new label that has beenselected. This operation yields a sorted data visualization.

The above four gestures are cited by way of example, not limitation.Other implementations can accommodate additional gestures for directlyinteracting with the data visualization, such as the data expansiongestures shown in FIGS. 13-15. Alternatively, or in addition, other datavisualizations can omit one or more of the above-described gestures.

FIG. 19 shows a procedure 1902 which summarizes the processing of manytypes of direction-interaction gestures. In block 1904, the computingdevice 102 determines whether the user has selected a part of theoriginal data visualization, such as a data item, a group of data items,an axis, a label, etc. This selection operation provides a selectedpart. In block 1906, the computing device 102 determines whether theuser has specified an action, selected from among a plurality ofavailable actions, to be performed on the selected part. For example, ina filter-out gesture, the user can specify an action by flicking up ordown on one or more selected data items. In a sorting gesture, the usercan specify an action by flicking up or down on a selected axis. In alabel-interaction gesture, the user can specify an action by selecting anew label within the label selection panel. In block 1908, the computingdevice 102 performs the selected action on the selected part. Forexample, in a filter-out action, the computing device 102 can remove theselected data item from the original data presentation, and display aplaceholder beneath the updated data items.

Finally, FIG. 20 shows a procedure 2002 that describes one manner bywhich the computing device 102 can provide a preview of its datamanipulation results. In block 2004, the computing device 102 receivesinput information from the input mechanisms 106. In block 2006, thecomputing device 102 determines whether the input information indicatesthat the user has performed at least part of a gesture that involvesdirectly interacting with an original data visualization. In block 2008,the computing device 102 generates an updated data visualization inresponse to determining that the user is performing the gesture. Inblock 2010, the computing device 102 provides a preview of the updateddata visualization prior to the completion of the gesture. In block2012, the computing device 102 commits (e.g., finalizes) the updateddata visualization when the gesture is completed. For example, as shownin FIG. 7, the computing device 102 can provide a preview 710 when itdetects that the user is in the process of performing the sortinggesture. As shown in FIG. 8, the computing device 102 can commit (e.g.,finalize) the sorting operation when the user removes his or her finger702 from the vertical axis 704, and thereby completes the sortinggesture.

C. Representative Computing Functionality

FIG. 21 illustrates computing functionality 2100 that can be used toimplement any aspect of the functions described above. For example, thetype of computing functionality 2100 shown in FIG. 21 can be used toimplement any aspect of the computing device 102 of FIG. 1. Howeverimplemented, the computing functionality 2300 represents one or morephysical and tangible processing mechanisms.

The computing functionality 2100 can include volatile and non-volatilememory, such as RAM 2102 and ROM 2104, as well as one or more processingdevices 2106 (e.g., one or more CPUs, and/or one or more GPUs, etc.).The computing functionality 2100 also optionally includes various mediadevices 2108, such as a hard disk module, an optical disk module, and soforth. The computing functionality 2100 can perform various operationsidentified above when the processing device(s) 2106 executesinstructions that are maintained by memory (e.g., RAM 2102, ROM 2104, orelsewhere).

More generally, instructions and other information can be stored on anycomputer readable medium 2110, including, but not limited to, staticmemory storage devices, magnetic storage devices, optical storagedevices, and so on. The term computer readable medium also encompassesplural storage devices. In many cases, the computer readable medium 2110represents some form of physical and tangible entity. The term computerreadable medium also encompasses propagated signals, e.g., transmittedor received via physical conduit and/or air or other wireless medium,etc. The specific terms “computer readable storage medium” and “computerreadable medium device,” however, expressly exclude propagated signalsper se, while including all other forms of computer readable media.

The computing functionality 2100 also includes an input/output module2112 for receiving various inputs (via input devices 2114), and forproviding various outputs (via output devices). Illustrative inputdevices include a keyboard device, a mouse input device, a touchscreeninput device, a digitizing pad, one or more cameras, a voice recognitionmechanism, any movement detection mechanisms (e.g., an accelerometer,gyroscope, etc.), and so on. One particular output mechanism may includea presentation device 2116 and an associated graphical user interface(GUI) 2118. The computing functionality 2100 can also include one ormore network interfaces 2120 for exchanging data with other devices viaone or more communication conduits 2122. One or more communication buses2124 communicatively couple the above-described components together.

The communication conduit(s) 2122 can be implemented in any manner,e.g., by a local area network, a wide area network (e.g., the Internet),etc., or any combination thereof. The communication conduit(s) 2122 caninclude any combination of hardwired links, wireless links, routers,gateway functionality, name servers, etc., governed by any protocol orcombination of protocols.

Alternatively, or in addition, any of the functions described in thepreceding sections can be performed, at least in part, by one or morehardware logic components. For example, without limitation, thecomputing functionality can be implemented using one or more of:Field-programmable Gate Arrays (FPGAs); Application-specific IntegratedCircuits (ASICs); Application-specific Standard Products (ASSPs);System-on-a-chip systems (SOCs); Complex Programmable Logic Devices(CPLDs), etc.

In closing, the description may have described various concepts in thecontext of illustrative challenges or problems. This manner ofexplanation does not constitute an admission that others haveappreciated and/or articulated the challenges or problems in the mannerspecified herein. Further, the claimed subject matter is not limited toimplementations that solve any or all of the noted challenges/problems.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A computing device, comprising: a touch screenconfigured to provide input information in response to interaction by auser with the computing device; a processing device; and a computerreadable storage medium storing computer readable instructions that,when executed by the processing device, cause the processing device to:display a bar chart comprising bars; receive the input information; in afirst instance: determine that the input information indicates that theuser has performed a flick filter-out gesture comprising touching anindividual bar of the bar chart with a finger and performing a downwardflicking movement on the individual bar, responsive to determining thatthe user has performed the flick filter-out gesture, remove theindividual bar from the bar chart, and display an updated bar chartwithout the individual bar, the updated bar chart comprising a differentindividual bar that was not selected by the flick filter-out gesture;and in a second instance: determine that the input information indicatesthat the user has performed a flick up filter-out gesture comprisingtouching another individual bar of the bar chart with the finger andperforming an upward flicking movement on the another individual bar,and responsive to determining that the user has performed the flick upfilter-out gesture on the another individual bar, remove remaining barsof the bar chart and retain the another individual bar in anotherupdated bar chart.
 2. The computing device of claim 1, wherein thecomputer readable instructions further cause the processing device to:in the first instance, detect completion of the flick filter-outgesture; and responsive to detecting the completion of the flickfilter-out gesture, display the updated bar chart.
 3. The computingdevice of claim 2, wherein the completion of the flick filter-outgesture comprises the user releasing touch contact with the touchscreen.
 4. The computing device of claim 1, wherein the computerreadable instructions further cause the processing device to: determinethat the user has performed the flick filter-out gesture in part bymatching the input information to a signature in a collection ofsignatures that associates the signature with the flick filter-outgesture.
 5. The computing device of claim 1, wherein, in the firstinstance, the input information indicates that the user has touchedadditional individual bars of the bar chart, and the computer readableinstructions further cause the processing device to: responsive todetermining that the user has performed the flick filter-out gesture,remove the individual bar and the additional individual bars from thebar chart.
 6. The computing device of claim 1, wherein the computerreadable instructions further cause the processing device to: determinethat the user has performed a different gesture comprising anotherflicking movement on another individual bar in a different direction;and responsive to determining that the user has performed the differentgesture, complete a different action relative to the another individualbar as indicated by the different gesture.
 7. A method performed by acomputing device, the method comprising: receiving input informationreflecting interaction of a user with bars of a bar chart on a touchscreen; in a first instance: determining that the input informationindicates that the user has performed a flick filter-out gesturecomprising touching an individual bar of the bar chart with a finger andperforming a flicking movement on the individual bar in a particulardirection, responsive to determining that the user has performed theflick filter-out gesture, removing the individual bar from the barchart, and displaying an updated bar chart without the individual bar,the updated bar chart comprising a different individual bar that was notselected by the flick filter-out gesture; and in a second instance:determining that the input information indicates that the user hasperformed a different flick filter-out gesture comprising touchinganother individual bar of the bar chart with the finger and performinganother flicking movement on the another individual bar in a differentdirection, and responsive to determining that the user has performed thedifferent flick filter-out gesture on the another individual bar,removing remaining bars of the bar chart and retaining the anotherindividual bar in another updated bar chart.
 8. The method of claim 7,wherein the determining that the input information indicates that theindividual bar of the bar chart has been touched comprises a selectingphase of the flick filter-out gesture, the selecting phase identifyingthe individual bar.
 9. The method of claim 8, wherein the determiningthat the input information indicates that the user has performed theflicking movement on the individual bar in the particular directioncomprises a flicking phase of the flick filter-out gesture, the flickingphase specifying removal of the individual bar from the bar chart. 10.The method of claim 9, wherein, in the first instance, the selectingphase comprises selecting multiple individual bars and the methodfurther comprises: in response to detecting the selecting phase and theflicking phase, updating the bar chart by removing the multipleindividual bars.
 11. The method of claim 7, wherein the individual barcorresponds to a single measurement displayed in the bar chart.
 12. Themethod of claim 7, further comprising: generating a placeholder item forthe individual bar; and after the removal of the individual bar,displaying the placeholder item and the updated bar chart.
 13. Themethod of claim 12, further comprising: detecting a filter-in gestureperformed by the user relative to the placeholder item; and in responseto detecting the filter-in gesture, restoring the placeholder item tothe updated bar chart.
 14. The method of claim 13, wherein the filter-ingesture comprises a new touch-related flicking movement on theplaceholder item in a direction toward the updated bar chart.
 15. Themethod of claim 13, wherein the filter-in gesture comprises selectingthe placeholder item and tapping a peripheral region of the touchscreen.
 16. The method of claim 12, further comprising: detecting anadditional gesture performed by the user relative to the placeholderitem; and in response to detecting the additional gesture, adding theplaceholder item to a different data visualization.
 17. The method ofclaim 7, wherein the particular direction is opposite the differentdirection.
 18. A computing device, comprising: a touch screen configuredto provide input information in response to interaction by a user withthe computing device; a processing device; and a computer readablestorage medium storing computer readable instructions that, whenexecuted by the processing device, cause the processing device to:display a bar chart comprising bars; receive the input information; in afirst instance: determine that the input information indicates that theuser has performed a flick filter-out gesture comprising touching anindividual bar of the bar chart and performing a flicking movement onthe individual bar in a first direction, responsive to determining thatthe user has performed the flick filter-out gesture, remove theindividual bar from the bar chart, and display an updated bar chartwithout the individual bar, the updated bar chart comprising a differentindividual bar that was not selected by the flick filter-out gesture;and in a second instance: determine that the input information indicatesthat the user has performed a different flick filter-out gesturecomprising touching another individual bar of the bar chart andperforming another flicking movement on the another individual bar in asecond direction, and responsive to determining that the user hasperformed the different flick filter-out gesture on the anotherindividual bar, remove remaining bars of the bar chart and retain theanother individual bar in another updated bar chart.
 19. The computingdevice of claim 18, wherein the computer readable instructions furthercause the processing device to: in the first instance, generate aplaceholder item for the individual bar; and display the placeholderitem and the updated bar chart.
 20. The computing device of claim 19,wherein the computer readable instructions further cause the processingdevice to: receive additional input information; determine whether theadditional input information indicates that the user has performed anadditional gesture on the placeholder item; and responsive todetermining that the user has performed the additional gesture, restorethe placeholder item to the updated bar chart.